The field of this invention is real time audio/video processing. Media files are often delivered for streaming or stored for consumption using compressed data formats. Playing this media data requires decoding/decompressing. This decoding/decompressing should be done in real time while the user is listening to the recovered audio data or watching the recovered video data. Once playing begins any interrupt of flow is generally considered unacceptable by the user.
There are two separate aspects of data processing that might cause problems. The first problem is with computational latency. The decoding/decompressing process requires data processing time. Thus there is a delay in playing audio/video file. The second problem is variability. Most compression techniques provide variable compression dependent upon the nature of the audio/video file being compressed. In addition some parts of the compression technique require varying amounts of data processing for decompression. The variable data rate and variable required data processing for decompression causes variable latency.
There is another artifact of the data processing in decoding/decompressing. The required data processing is generally very serial for each input data sample. Performing the entire serial chain processing for a single sample at a time is considered disadvantageous. Generally these data processing operations operate upon a block of samples. This process generally requires buffering data samples before and after data processing each block of samples.